﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TodoList.DAL;
using TodoList.Contract;

namespace TodoList
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                rptTodo.DataSource = TodoListDAL.CarregaLista();
                rptTodo.DataBind();
            }
            catch (Exception ex)
            {
                lblErro.Text = "Erro ao carregar a lista. Para uso do administrador: " + ex.Message;
            }
        }

        protected void rptTodo_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            Tarefa item = (Tarefa)e.Item.DataItem;
            Label lblTarefa = (Label)e.Item.FindControl("lblTarefa");
            CheckBox chkTarefa = (CheckBox)e.Item.FindControl("chkTarefa");

            lblTarefa.Text = item.Descricao;
            chkTarefa.Checked = item.Feita;
        }

        protected void btnInserirTarefa_Click(object sender, EventArgs e)
        {
            try
            {
                if (!txtNovaTarefa.Text.Equals(""))
                {
                    Retorno retornoInsert = TodoListDAL.InsereTarefa(new Tarefa
                    {
                        Descricao = txtNovaTarefa.Text,
                        Feita = false
                    });

                    if (retornoInsert.TudoOk)
                    {
                        rptTodo.DataSource = TodoListDAL.CarregaLista();
                        rptTodo.DataBind();
                    }
                    else
                    {
                        lblErro.Text = retornoInsert.Mensagem;
                    }
                }
                else
                {
                    lblErro.Text = "Preencha a descrição da nova tarefa";
                }
            }
            catch (Exception ex)
            {
                lblErro.Text = "Erro ao inserir tarefa. Para uso do administrador: " + ex.Message;
            }
        }
    }
}